
#ifndef __H_MVP_TRANSMITTER_PPS__H__
#define __H_MVP_TRANSMITTER_PPS__H__

#include <iostream>

#include "transport/transmitter/transmitter.h"
#include "transport/pps/pps_proxy.h"

namespace motovis {
namespace transport {

template <typename MessageT>
class PpsTransmitter : public Transmitter<MessageT> {
  public:
    using MessagePtr = std::shared_ptr<MessageT>;
    bool transmit(const std::string &channelName,
                  const MessagePtr &msg) override;
};

template <typename MessageT>
bool PpsTransmitter<MessageT>::transmit(const std::string &channelName,
                                        const MessagePtr &msg)
{
    return PpsProxy::Instance()->publish(channelName, msg);
}

} // namespace transport
} // namespace motovis

#endif //__H_MVP_TRANSMITTER_PPS__H___
